# 浅拷贝只会对可变类型的第一层对象进行拷贝，不会对子对象进行拷贝，拷贝成功后会开辟一个新的内存空间存储拷贝对象
import copy
# 不可变类型：数字/字符串/元组

num1=1
# 浅拷贝
num2=copy.copy(num1)
print(id(num1))
print(id(num2))
# 内存地址的值相同，并没有拷贝一个新的对象
# 对于不可变类型，进行浅拷贝，实际上是对引用的一个拷贝

my_tuple=(3,5)
my_tuple1=copy.copy(my_tuple)
print(id(my_tuple))
print(id(my_tuple1))

# 可变类型：列表/字典和集合
# 可变类型只拷贝第一层,其他层的地址是相同的
my_list1=[1,2,3,[4,5]]
my_list2=copy.copy(my_list1)
print(id(my_list1))
print(id(my_list2))
print(my_list2)
# 第二层指向的对象是一样的
print(id(my_list1[3]))
print(id(my_list2[3]))